ArangoDB-এর Complex Queries এবং Relevance Calculation হল উন্নত ডেটা বিশ্লেষণ এবং অনুসন্ধান করার জন্য গুরুত্বপূর্ণ বৈশিষ্ট্য। এর মাধ্যমে আপনি ডেটাবেসে বড় এবং জটিল ডেটাসেট নিয়ে কাজ করতে পারেন এবং ব্যবহারকারীর জন্য আরো সঠিক এবং প্রাসঙ্গিক তথ্য প্রাপ্তি নিশ্চিত করতে পারেন।
ArangoDB-এর Complex Queries সাধারণত AQL (Arango Query Language) ব্যবহার করে তৈরি করা হয়। AQL হল একটি SQL-এর মতো কোয়েরি ভাষা, যা ডেটাবেস থেকে জটিল ডেটা রিট্রাইভ করার জন্য ব্যবহৃত হয়। Complex Queries-এ আপনি ডেটার মধ্যে বিভিন্ন সম্পর্ক এবং শর্ত অনুযায়ী অনুসন্ধান করতে পারেন।
FOR doc IN myCollection
FILTER doc.age > 25 && doc.city == "New York"
RETURN doc
এটি age ফিল্ড ২৫ এর বেশি এবং city ফিল্ড "New York" এর সমান ডকুমেন্টগুলি রিটার্ন করবে।
FOR user IN users
FOR order IN orders
FILTER user._id == order.user_id
RETURN { user: user.name, order: order.amount }
এটি users এবং orders Collection-এর মধ্যে _id এবং user_id এর মাধ্যমে সম্পর্ক স্থাপন করে যৌথ তথ্য রিটার্ন করবে।
FOR user IN users
FILTER LENGTH(
FOR order IN orders
FILTER order.user_id == user._id && order.status == "completed"
RETURN order
) > 0
RETURN user
এটি users Collection থেকে এমন ব্যবহারকারী নির্বাচন করবে যারা কমপ্লিটেড অর্ডার করেছেন।
FOR order IN orders
COLLECT status = order.status WITH COUNT INTO count
RETURN { status, count }
এটি orders Collection থেকে প্রতিটি status অনুযায়ী অর্ডারের সংখ্যা গণনা করবে।
FOR user IN users
SORT user.name ASC
LIMIT 10, 20
RETURN user
এটি users Collection-এর ডেটা name অনুযায়ী সাজিয়ে প্রথম ২০টি রেকর্ড রিটার্ন করবে, যেখানে ১০টি ডেটা স্কিপ করা হবে (পেইজিনেশন)।
Relevance Calculation ArangoDB-তে সাধারণত Fulltext Search বা Ranking অ্যালগরিদম ব্যবহার করে করা হয়। এটি একটি ডকুমেন্টের প্রাসঙ্গিকতা (relevance) নির্ধারণ করে, বিশেষত যখন আপনি একটি search query বা text search চালান।
ArangoDB Fulltext Index এর মাধ্যমে টেক্সট অনুসন্ধান সমর্থন করে এবং এর মাধ্যমে আপনি একটি টেক্সটের মধ্যে কীওয়ার্ড অনুসন্ধান করে তার প্রাসঙ্গিকতা বের করতে পারেন। Fulltext Index তৈরি করতে, আপনাকে প্রথমে Collection-এ Fulltext Index তৈরি করতে হবে।
CREATE INDEX myFulltextIndex ON myCollection(textField) TYPE fulltext(3)
এটি textField ফিল্ডে পূর্ণ পাঠ অনুসন্ধান সক্ষম করবে এবং ৩টি শব্দের প্রেক্ষিতে প্রাসঙ্গিকতার স্কোর গণনা করবে।
FOR doc IN myCollection
LET relevance = TFIDF(doc.textField, "searchKeyword")
FILTER relevance > 0.1
SORT relevance DESC
RETURN doc
এটি textField-এ "searchKeyword" এর প্রাসঙ্গিকতা গণনা করে এবং relevance score অনুযায়ী সাজিয়ে ডকুমেন্ট রিটার্ন করবে।
ArangoDB তে আপনি boosting ব্যবহার করে নির্দিষ্ট ফিল্ড বা শর্তের প্রাসঙ্গিকতাকে বাড়াতে পারেন।
FOR doc IN myCollection
LET relevance = TFIDF(doc.textField, "searchKeyword") * 2 // Boost relevance
FILTER relevance > 0.1
SORT relevance DESC
RETURN doc
এটি textField-এ প্রাসঙ্গিকতাকে ২ গুণ বাড়িয়ে searchKeyword এর প্রাসঙ্গিকতা বেশি করে দেখাবে।
Complex Queries এবং Relevance Calculation ArangoDB-তে অত্যন্ত গুরুত্বপূর্ণ ফিচার যা ডেটার জটিল বিশ্লেষণ এবং সঠিক অনুসন্ধান ফলাফল সরবরাহ করে। AQL ব্যবহার করে বিভিন্ন ধরনের জটিল কোয়েরি তৈরি করা যায়, এবং Fulltext Search বা Relevance Calculation কৌশল ব্যবহার করে ডেটার প্রাসঙ্গিকতা বের করা যায়। এগুলি ডেটাবেসের কর্মক্ষমতা এবং সার্চ অভিজ্ঞতাকে উন্নত করতে সহায়ক।